Elements Families

All graphical elements of a skin are “cells”: 2D graphics that can be positioned in a parent cell and that can contain any other cell. A cell have layout capabilities: it may be a 'column' or a 'row', which means that its contained cells will be positioned in a column or a row. Cells can be automatically positioned in their parent cell (default) or manually (if position is explicitly defined by the designer).

A particular cell element is the Skin element: it is mandatory and is the root of the skin. It defines the root cell that corresponds to the overall User Interface.

The ROW, COLUMN and LAYER_STACK elements are just two specializations of the cell element. These layout elements do not define any graphics. They are used for layout logical structure.

Then come the widgets elements family: widgets are GUI elements that have graphic properties, which may be active or not (this means 'allow user interaction' or not): buttons, images, text etc. This family has been divided into two parts: General Purpose Widgets which allow non plug-in specific data, opposed to Param Viewing Widgets and Param Control Widgets which can only be used for plug-in parameters: with them the end user will view or control the parameters of the plug-in.

Since V1.1, another part of the language enables the creation of custom model objects and model links. These objects handle data and behavior for the user interface. For example it is possible to link parameters together, have a button enable or disable a control etc.

Since V1.9.1, it is also possible to create new behaviors using the new action objects. These custom behaviors can be triggered using action buttons.

In the last chapter are presented language elements which are part of the Blue Cat's skinning language but do not describe visible or layout elements. They just provide functionalities to make skin creation easier.